﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
using System.Collections;

namespace WebVideo.Areas.Admin.Models
{
    public class ProductPointModel
    {
        public int Id { get; set; }

        [Required(ErrorMessage = "Tên sản phẩm không được rỗng")]
        [StringLength(100, ErrorMessage = "Tiêu đề phải ít hơn {1} kí tự và lớn hơn {2} kí tự", MinimumLength = 5)]
        public string Name { get; set; }

        [Required(ErrorMessage = "Số điểm không được rỗng")]
        [RegularExpression("^\\+?\\d+$", ErrorMessage = "Không nhập ký tự , vui lòng nhập số điểm")]
        public int Point { get; set; }

        [Required(ErrorMessage = "Số tiền không được rỗng")]
        [RegularExpression("^\\+?\\d+$", ErrorMessage = "Không nhập ký tự , vui lòng nhập số tiền")]
        public int Value { get; set; }

        public string Image { get; set; }

        public DateTime? Date { get; set; }


        public static IEnumerable<EntityProduct_Point> Index()
        {
            dbVideoDataContext db = new dbVideoDataContext();
            var query = from p in db.EntityProduct_Points
                        select p;
            return query.ToList();
        }
        public static void Insert(ProductPointModel PP)
        {
            dbVideoDataContext db = new dbVideoDataContext();
            EntityProduct_Point pp = new EntityProduct_Point();
            pp.Name = PP.Name;
            pp.Point = PP.Point;
            pp.Value = PP.Value;
            pp.Image = PP.Image;
            pp.Date = DateTime.Now;
            db.EntityProduct_Points.InsertOnSubmit(pp);
            db.SubmitChanges();
        }

        public static ProductPointModel LayModel(int IdPP)
        {
            ProductPointModel Faq = new ProductPointModel();


            dbVideoDataContext db = new dbVideoDataContext();

            EntityProduct_Point tnew = db.EntityProduct_Points.Where(p => p.Id == IdPP).Single();

            Faq.Name = tnew.Name;
            Faq.Point = Convert.ToInt32(tnew.Point);
            Faq.Value =(int)tnew.Value;
            Faq.Image = tnew.Image;
            Faq.Id = tnew.Id;


            return Faq;

        }
        public static string Edit(ProductPointModel FAQ)
        {
            dbVideoDataContext db = new dbVideoDataContext();
            EntityProduct_Point Faq = db.EntityProduct_Points.Where(p => p.Id == FAQ.Id).Single();
            Faq.Name = FAQ.Name;
            Faq.Point = FAQ.Point;
            Faq.Value = FAQ.Value;
            string image = null;
            if (FAQ.Image != null)
            {
                image =Faq.Image;
                Faq.Image = FAQ.Image;
            }
            db.SubmitChanges();
            return image;

        }
        public static string Delete(int Id)
        {
            dbVideoDataContext db = new dbVideoDataContext();

            EntityProduct_Point faq = db.EntityProduct_Points.Where(p => p.Id == Id).Single();
            string image = faq.Image;
            db.EntityProduct_Points.DeleteOnSubmit(faq);
            db.SubmitChanges();
            return image;
        }
    }
}